home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
xlisp_21.zoo
/
xl-001.bug
< prev
next >
Wrap
Internet Message Format
|
1990-02-28
|
5KB
From sce!mitel!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!hplabs!hplabsz!mayer Thu Jun 22 07:40:45 EDT 1989
Article: 118 of comp.lang.lisp.x
Path: cognos!sce!mitel!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!hplabs!hplabsz!mayer
From: mayer@hplabsz.HPL.HP.COM (Niels Mayer)
Newsgroups: comp.lang.lisp.x
Subject: Re: XLISP 2.0 -- bug in stream implementation // XLISP internals Docs?
Message-ID: <3478@hplabsz.HPL.HP.COM>
Date: 14 Jun 89 05:10:28 GMT
References: <3468@hplabsz.HPL.HP.COM>
Reply-To: mayer@hplabs.hp.com (Niels Mayer)
Organization: Hewlett-Packard Labs, Software Technology Lab, Palo Alto, CA.
Lines: 41
Summary:
Expires:
Sender:
Followup-To:
In article <3468@hplabsz.HPL.HP.COM> mayer@hplabs.hp.com (Niels Mayer) writes:
>It looks like garbage collection is trashing a pointer somewhere when using
>make-string-input-stream running read-char on that stream. After doing a
>bunch of read-chars on that stream, I get an "error: bad stream" message.
>This happens more often right after you start up xlisp, and less frequently
>upon subsequent garbage collections.
Someone inside HP kindly mailed me an archive of the last year of
comp.lang.lisp.x, and inside that archive, I found the following fix:
Note 58 two bugs with unnamed streams in xlisp 2.0
nikkie@dutesta.UUCP (Paul A.W. van Niekerk) 7:13 am Dec 16, 1988
I discovered two bugs in my copy of xlisp 2.0 concerning unnamed streams.
The bugs + fixes follow.
1. Unnamed streams never survive a garbage collection.
Fix: in xldmem.c change in function mark the line:
if ((type = ntype(this)) == CONS) {
to
if ((type = ntype(this)) == CONS || type == USTREAM) {
2. (format nil ...) does not protect the unnamed stream it creates, it will
vanish during a GC.
Fix: in xlfio.c add to function xformat the lines:
xlsave1(val);
...
xlpop();
Now USTREAMS seem to work fine.
Paul van Niekerk.
--
Paul A.W. van Niekerk | All standard
Delft University of Technology | disclaimers apply ...
-------------------------------------------------------------------------------
Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
Human-Computer Interaction Department
Hewlett-Packard Laboratories
Palo Alto, CA.
*
From sce!mitel!uunet!cs.utexas.edu!csd4.milw.wisc.edu!dogie.macc.wisc.edu!indri!nero!blake!uw-beaver!tektronix!tekcrl!tekgvs!toma Thu Jun 22 07:41:11 EDT 1989
Article: 119 of comp.lang.lisp.x
Path: cognos!sce!mitel!uunet!cs.utexas.edu!csd4.milw.wisc.edu!dogie.macc.wisc.edu!indri!nero!blake!uw-beaver!tektronix!tekcrl!tekgvs!toma
From: toma@tekgvs.LABS.TEK.COM (Tom Almy)
Newsgroups: comp.lang.lisp.x
Subject: Re: XLISP 2.0 -- bug in stream implementation // XLISP internals Docs?
Message-ID: <5353@tekgvs.LABS.TEK.COM>
Date: 14 Jun 89 14:41:38 GMT
References: <3468@hplabsz.HPL.HP.COM>
Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy)
Organization: Tektronix, Inc., Beaverton, OR.
Lines: 39
In article <3468@hplabsz.HPL.HP.COM> mayer@hplabs.hp.com (Niels Mayer) writes:
>It looks like garbage collection is trashing a pointer somewhere when using
>make-string-input-stream running read-char on that stream. A[...]
>I'm going to try to track this down in the code, but I thought I'd tap your
>collective wisdoms on this problem. Maybe someone's already fixed it? [...]
Yes the fix has been posted. An abridged copy is appended to this posting.
Tom Almy
toma@tekgvs.labs.tek.com
Standard Disclaimers Apply
----------------------- OLD POSTING FOLLOWS --------------------------
From: nikkie@dutesta.UUCP (Paul A.W. van Niekerk)
Newsgroups: comp.lang.lisp.x
Subject: two bugs with unnamed streams in xlisp 2.0
Date: 16 Dec 88 15:13:26 GMT
Organization: DELFT UNIVERSITY OF TECHNOLOGY
Faculty of Electrical Engineering
Computer architecture and Digital Technique
Mekelweg 4 - 2628 CD Delft
I discovered two bugs in my copy of xlisp 2.0 concerning unnamed streams.
The bugs + fixes follow.
1. Unnamed streams never survive a garbage collection.
Fix: in xldmem.c change in function mark the line:
if ((type = ntype(this)) == CONS) {
to
if ((type = ntype(this)) == CONS || type == USTREAM) {
2. (format nil ...) does not protect the unnamed stream it creates, it will
vanish during a GC.
Fix: in xlfio.c add to function xformat the lines:
xlsave1(val);
...
xlpop();
NOTES: xlsave1(val) is being passed an uninitialized value! where do the
above xlsave1/xlpop go? pop before return?